/*
 * @Author: ZhanXie
 * @Date: 2020-01-06 09:27:17
 * @LastEditors  : ZhanXie
 * @LastEditTime : 2020-01-08 12:06:49
 * @Description: 
 * @FilePath: /projectStudy/jumpGame/src/utils/event.js
 */
class Event {
  constructor(sender) {
    this._sender = sender
    this._listeners = [] // 维护这个事件所有执行的回调函数
  }

  /**
   * 绑定事件和回调函数
   */
  attach(callback) {
    this._listeners.push(callback)
  }

  /**
   * 触发所有绑定在时间上面的回调函数
   * @param {*} args 回调函数参数 
   */
  notify(args) {
    for (let i = 0; i < this._listeners.length; i++) {
      this._listeners[i](this._sender, args)
    }
  }
}

export default Event